import { createApp } from "vue";
import App from "./App.vue";

// 引入router
import router from "./router";
// 统一浏览器的样式
import "normalize.css/normalize.css";
// 引入全局样式
import "@/styles/global.scss";
// 引入全局设置
import "./global-setting";
// 注册svg图标
import "virtual:svg-icons-register";
// 国际化
import i18n from "@/locales";
// 引入element plus 的暗色主题
import "element-plus/theme-chalk/dark/css-vars.css";
// 引入animate.css动画库
import "animate.css";
// 使用pinia
import { createPinia } from "pinia";
import { registerStore } from "@/store";


async function bootstrap() {
  /**
   * 一、初始化系统配置信息(保证所有基础数据加载完成,才创建ui)
   *    1. 全局变量(app),ajax,tools的定义,语言包lpk国际化
   *    2. 异步加载基础模块的配置信息
   *    3. 异步加载业务模块, 并完成基本的初始化
   *    4. 注册全局组件
   *    5. 初始化状态管理与路由,并渲染根组件
   */
  const app = createApp(App);
  const pinia = createPinia();

  app.use(router);
  app.use(i18n);
  app.use(pinia);

  // 注册pinia状态管理库
  registerStore();

  // 开发环境下全局异常捕获
  if (import.meta.env.DEV) {
    app.config.errorHandler = (err, vm, info) => {
      console.log("全局异常", err, vm, info);
    };
  }

  app.mount("#app");
}

bootstrap();
